Service locator
オブジェクトコンテナを依存として注入し、利用時に必要な依存オブジェクトをこのコンテナから取り出すというパターンである。
サービスロケータは、DI を使わずに依存オブジェクトを内部で生成するパターンの発展系で、一方、DI コンテナは、外部から依存オブジェクトを与えるので、制御の方向が逆とも言える。 サービスロケータでも、DI コンテナと同様に、実装の差し替えや依存オブジェクトの生成やライフサイクルの管理といったメリットを享受できる。
ただ、DI パターンのメリットである、依存を明確にする、最小限にするという効果は薄れる。
Service locatorは、メソッドの依存しているオブジェクトをメソッド内部で生成するので、DIに比べて何に依存しているかわかりづらいkadoyau.icon
注入の方法はコンストラクタインジェクション1択がおすすめ
コードで理解したい